package com.example.smartpark.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 收费标准数据传输对象
 */
@Data
public class FeeStandardDTO {

    /**
     * 主键ID
     */
    private Integer id;

    /**
     * 标准名称
     */
    @NotBlank(message = "标准名称不能为空")
    private String name;

    /**
     * 车位类型（0-普通，1-固定，2-访客）
     */
    @NotNull(message = "车位类型不能为空")
    private Integer spaceType;

    /**
     * 收费类型（0-小时，1-天，2-月，3-年）
     */
    @NotNull(message = "收费类型不能为空")
    private Integer feeType;

    /**
     * 费用金额
     */
    @NotNull(message = "费用金额不能为空")
    @DecimalMin(value = "0.01", message = "费用金额必须大于0")
    private BigDecimal feeAmount;

    /**
     * 免费时长（分钟）
     */
    @Min(value = 0, message = "免费时长不能小于0")
    private Integer freeMinutes;

    /**
     * 每日封顶金额
     */
    @DecimalMin(value = "0", message = "每日封顶金额不能小于0")
    private BigDecimal dayCap;

    /**
     * 生效开始时间
     */
    @NotNull(message = "生效开始时间不能为空")
    private Date startTime;

    /**
     * 生效结束时间
     */
    @NotNull(message = "生效结束时间不能为空")
    private Date endTime;

    /**
     * 状态（0-禁用，1-启用）
     */
    @NotNull(message = "状态不能为空")
    private Integer status;
} 